package cn.ad.server.web.spring.model.gdt;

import cn.ad.server.web.spring.model.AdImpression;
import com.baidu.bjf.remoting.protobuf.FieldType;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.List;

public class GDTImpression extends AdImpression{

	@Protobuf(fieldType = FieldType.STRING, required = true)
	private String id;

	@Protobuf(fieldType = FieldType.INT32, required = true)
	private int placement_id;

	@Protobuf(fieldType = FieldType.INT32, required = true)
	private List<Integer> creative_specs;

	@Protobuf(fieldType = FieldType.INT32, required = true)
	private int bid_floor;

	@Protobuf(fieldType = FieldType.INT32)
	private List<Integer> blocking_industry_id;

	// 原生广告信息
	@Protobuf(fieldType = FieldType.OBJECT)
	private GDTNative natives;

	@Protobuf(fieldType = FieldType.STRING)
	private String contract_code;

	@Protobuf(fieldType = FieldType.STRING)
	private String multimedia_type_white_list;

	@Protobuf(fieldType = FieldType.STRING)
	private List<String> blocking_keyword;

	@Protobuf(fieldType = FieldType.STRING)
	private List<String> advertiser_whitelist;

	@Protobuf(fieldType = FieldType.STRING)
	private List<String> advertiser_blacklist;

	@Protobuf(fieldType = FieldType.INT32)
	private List<Integer> pretargeting_ids;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public int getPlacement_id() {
		return placement_id;
	}

	public void setPlacement_id(int placement_id) {
		this.placement_id = placement_id;
	}

	public int getBid_floor() {
		return bid_floor;
	}

	public void setBid_floor(int bid_floor) {
		this.bid_floor = bid_floor;
	}

	public List<Integer> getCreative_specs() {
		return creative_specs;
	}

	public void setCreative_specs(List<Integer> creative_specs) {
		this.creative_specs = creative_specs;
	}

	public List<Integer> getBlocking_industry_id() {
		return blocking_industry_id;
	}

	public void setBlocking_industry_id(List<Integer> blocking_industry_id) {
		this.blocking_industry_id = blocking_industry_id;
	}

	public GDTNative getNatives() {
		return natives;
	}

	public void setNatives(GDTNative natives) {
		this.natives = natives;
	}

	public String getContract_code() {
		return contract_code;
	}

	public void setContract_code(String contract_code) {
		this.contract_code = contract_code;
	}

	public String getMultimedia_type_white_list() {
		return multimedia_type_white_list;
	}

	public void setMultimedia_type_white_list(String multimedia_type_white_list) {
		this.multimedia_type_white_list = multimedia_type_white_list;
	}

	public List<String> getBlocking_keyword() {
		return blocking_keyword;
	}

	public void setBlocking_keyword(List<String> blocking_keyword) {
		this.blocking_keyword = blocking_keyword;
	}

	public List<String> getAdvertiser_whitelist() {
		return advertiser_whitelist;
	}

	public void setAdvertiser_whitelist(List<String> advertiser_whitelist) {
		this.advertiser_whitelist = advertiser_whitelist;
	}

	public List<String> getAdvertiser_blacklist() {
		return advertiser_blacklist;
	}

	public void setAdvertiser_blacklist(List<String> advertiser_blacklist) {
		this.advertiser_blacklist = advertiser_blacklist;
	}

	public List<Integer> getPretargeting_ids() {
		return pretargeting_ids;
	}

	public void setPretargeting_ids(List<Integer> pretargeting_ids) {
		this.pretargeting_ids = pretargeting_ids;
	}
	
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
	
}
